Cloud-based, or hosted, computing generally involves executing applications via a web browser, and obtaining information for the applications from a remote server system or service. Various applications are available from hosted services, including search engines, maps services, and productivity applications such as word processor and spreadsheet programs that run by loading executing HTML and JavaScript code from the server system to a browser running on a client computing device that is remote from the server system.
Cloud computing provides real advantages over traditional desktop software, such as the ability to access documents from various different computers and locations. Web browsers do, however, place a number of limits on programs that run on them. For example, web browsers may offer programmers HTML elements that are very simple to implement but can be rather inflexible. As one example, a browser text box can be a simple way for a programmer to acquire textual input from a user of a browser, but the manner in which the text is presented is relatively bland. Also, browsers do not provide access to native text rendering capabilities, do not generally permit much flexibility in positioning images on a web page, and cannot natively execute other functions that are expected from a full-featured word processor application. Although web browsers provide very good tools for working with text, they can require more work when attempting to implement rich features such as digital images and executable files.